package com.itheima.pattern.t15_reponsibility.demo1;

/**
 * 责任链模式：
 * 又名职责链模式，为了避免请求发送者与多个请求处理者耦合在一起，将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链；
 * 当有请求发生时，可将请求沿着这条链传递，直到有对象处理它为止。
 */
public class TestDemo {

    public static void main(String[] args) {
        // 创建请假条对象
        LeaveRequest leave = new LeaveRequest("小明", 5, "身体不适");
        // 创建各级领导对象
        GroupLeader groupLeader = new GroupLeader();
        Manager manager = new Manager();
        GeneralManager generalManager = new GeneralManager();
        // 设置处理者链
        groupLeader.setNextHandler(manager);
        manager.setNextHandler(generalManager);
        // 小明提交请假申请
        groupLeader.submit(leave);
    }
}
